" +"What happened to the attitude when you broke all the rules") QAUTHOR='The Farm, "Groovy Train"'> <$macro MSG_NOTE>Note <$macro MSG_STYLE>Bad-style <$macro MSG_PORT>Portability-problem <$macro MSG_WARN>Warning <$macro MSG_ERR>Error <$macro MSG_FERR>Fatal error <$macro OPTN_IGNORE>IGNORE <$macro msg id:string/r name:string class:enum("note|style|port|warning|error|fatal") undoc:bool>

<$if COND=(undoc)>message <(id)>:
Ununsed or undocumented. <$else><$if COND=(class="style")>bad style <$elseif COND=(class="port")>portability problem <$elseif COND=(class="fatal")>fatal error <$else><(class)> <(id)>: <(name)>
<$MACRO insattr>attribute attrib <$MACRO insent>entity entity <$MACRO instag>tag <tag> <$MACRO insendtag>end tag <tag> <$MACRO insval>value value <$MACRO insid>id id <$MACRO inssval>value

is able to produce lots of different warnings and errors when parsing hsc-sources. The are devided into several classes, and there is a possibility to filter out specific messages or whole message classes. There are also possibilities to change the rendering of messages and redirect them to a file, making it easy to integrate into existing developer environments.

Message elements

By default, messages show up as seen below:
file (line#, colum#): class and message-id: message
with being For example, a typical message would be: <$source PRE> hugo.hsc (17,23): Warning 11: unknown tag

Message classes

Note is a message only for the users information. It can be suppressed using .

Bad-style informs the user that his altough legal html-code includes constructs that indicate a bad style. It can be suppressed using .

Portability-problem informs the user that his altough legal html-code includes constructs can lead to problems on old or buggy browsers. It can be suppressed using .

Warning tells you that your source includes some problematic parts, that can lead to problems with several browsers. It can be suppressed using .

Error indicates that there is something wrong with your html-source. No output is written.

Fatal error tells you that something terrible has happened and there is no way to continue the conversion. No output is written.

Message options

There are several CLI options to modify the behavior of 's messages:
  • can be used to suppress single messages or whole message classes, if you are not interested in them
  • MSGFORMAT specifies a template how to use message elements
  • MSGFILE is used to redirect messages into a file, where they for example can be processed by some message parser that controls your editor
  • MSGANSI tells to use some ANSI escape sequences to make messages easier to read, if you only let them show up on the screen (and don't use any IDE)

List of messages

Below you can find a list of messages that might show up when processiong hsc-sources. Most of them also include a short explanation what could have caused the problem and how to fix it. However, this is not a html-tutorial. To fully understand these messages requires some experience from the user.
The project-file specified could not been open. This indicates no problem, if you specified a project-file using the first time; it will be created automatically after the html-object has successfully been processed. The data found in the project file are not of the required form. Most likely, the file-format-version is outdated. Remove the old file, will create a new one next time it is invoked. There are still characters to be read from input, but the file already ends; tells you what it still expects to come. An input file could not been opened. A more detailed message that tells you why is displayed, too. Notifies user that a tag has been removed. This usually happens because the user requested this with one of the CLI-options. A heading should not be more than one level below the heading which preceded it. That is, an H3 element should not follow an H1 element directly. The first heading showing up in a document should be H1. A keyword defined with the special attribute HSC.CLICK-HERE has been found within the text inside an anchor specification.

Ok, now again in english: you used some term like "Click here" inside the text describing a link. This is very clumsy and should be avoided; see Composing Good HTML for details. You refered to an unknown tag or macro. A tag that is expected to occure only once appeared at least twice. Remove all unneccessary occurences of the tag. You called a end-tag without using the corresponding start-tag before. A end-tag appeard where a different end-tag was expected to appear before. Example: instead of <$SOURCE PRE> bold and italic you should write <$SOURCE PRE> bold and italic A tag that is required for every document is missing. You called an start-tag, but didn't end it. Insert the required end-tag. You have used an unknown modifier to define the characteristics of an tag or macro. You used an entity, that doesn't know. This can happen if you made a typo, or the entity has not been defined within . A has been expected, but didn't occure. For instance, you could have an entity &uuml instead of &uuml;. You referered to an attribute that doesn't exist at all. A tag points to a local resource that doesn't exist. You passed a value to an attribute, but did not embed it into single or double quotes. This can lead to problems with older browsers. An attribute referes to an attribute that has been defined, but no value has been set for. Usually, you try to refer to an attribute inside a macro, that no value has been passed to within the call of the macro. You have used an option to define the characteristics of an attribute, which is not allowed to appear at this location. Some browser support the non-html-tag BLINK. It is used to make text blinking, which annoys many users. Additionally, most of them don't know how to configure their browser that it doesn't blink, so you really should avoid it. You tried to assign more than one default value within an attribute declaration. For instance, like in <$source PRE> <$define HUGO:string="hugo"="or sepp?"> Remove the part corresponding to ="or sepp?". You tried to assign a new value to an attribute declared as constant. That is, the attribute option /CONST has been specified when defining it earlier. An anchor tag has been specified without one of the required attributes HREF or NAME. A "greater than" sign appeared inside the text. You should write "&gt;" instead. This can also happen, if you made an error calling a tag, and 's parser couln't recover. A syntax element did not occure where it has been expected. You tried to set an enumerator to a value it doesn't support. The tag was defined within some old html-version, but should not be used any more (eg. LISTING). This tag is no legal html-tag and is only supportet by special browsers. This text and class of this message can be controlled by the user using $message. The file could not be found at any of the expected locations. The function could not access the environment variable specified an returned an empty value. Non-boolean attributes require an value set. You defined a new attribute, but used an option that is unknown. An attribute that is required has not been set within the call of a tag or macro. This message can show up if you have specified when invoking , and have set the attribute WIDTH and/or HEIGHT by hand. It denotes that the values you have used differ from those has evaluated from the image data. Informs you that a special character (non-7-bit-ASCII) has been replaced by it's corresponding entity. A white space occured at a place where it was not supposed to. The messages#47 to #50 touch problems that are known bugs of several browsers. A general comment on sgml-comments: Try to avoid them, use the * comment * tag instead. This message is active only if you specified a project file when invoking using the option . It tell you that a reference to a local id within a document could not be checked because the document linked to is not mentioned in the project file.

Usually, this happens when you did not process the above mentioned document with a project file specified before. Do not worry about that too much, after processing all documents of your project at least once, this message usually does not show up any more.

If it still is there, then you are refering to documents that are part of none or another project using another project-file; if so, there is no work-around for this case. <* replace spec. char *> An $else tag has been at an unexptected position. Usually, a single preceding $if has two or more corresponging $else tags assigned. You have invoked a shell-command using and it returned a value unequal to zero, which usually denotes an error while processing the command. For error analysis, look at the output that the command (hopefully) has made. An element of the form ! has been detected. A sgml-comment consisting of a single word, for instance !--sepp--, has been detected. Note that there are no blanks preceding/succeding sepp) An end tag has been detected without it's corresponding start tag occuring before. Icon-entities are not (yet) widly supported. You have just redefined a tag or macro that has already been declared before. The previous declaration will be thrown away. Before you are allowed to use the first tag, the second tag has to occure before. Example: INPUT may only occure inside FORM. A tag occures inside another tag that doesn't allowe this. For example, you can't recursively use A inside A. You tried to pass values to a end-tag or macro. If you need an attribute for a end-macro only, you still have to define and pass it within the start-macro; the end-macro will have access to all these attributes and its values. You redefined an alredy existing attribute. If this occures during the definition of a new macro, you just tried to give two arguments the same name. You have tried to use an attribute name which contains characters not allowed for that. Legal characters for attribute names are letters, digits, , and . Within an expression, you have used an binary operator that is not one of those mentioned in the list of operators. You tried to use a simple tag as a container, for example /IMG could not determine the size of a link destination. Somethings wrong with a or call. You have tried to strip one of 's special tags using the CLI-option . This does not make much sense, because all these tags will not show up in the output anyway. A numeric value must only consist of letters. Only integer values are allowed, therefor even a must not be used. A color value must fit the template #rrggbb or be one of the values declared in the special attribute HSC.COLOR-NAMES defined in You forgot to specify the ID mentioned using A NAME=.., or just made a typo. You tried to redfine an ID that has already been declared before within the current document. This message should need no comment; anyway, read Why Frames Suck for more details. A icon-entity has been found is was replaced by an IMG. This message will only show up if you have passed the CLI option . See below. These two messages point out that instead of (read the ) as a blank)
STRONG__important__/STRONG
you better should use
STRONGimportant/STRONG
It only affects tags like A, TITLE, headings and physical/locigal styles. If a attribute value contains any characters other then letters, digits, or , it needs to be quoted. The quote style has been changed for a specific attribute. This message will only show up if you have passed the CLI option . <* *>